/**
 * @param {number[]} height
 * @return {number}
 */
var trap = function(height) {
    if(height.length<=0) return 0
    let left=0
    let right=height.length-1
    let leftMax=height[left]
    let rightMax=height[right]
    let water=0
    while(left<right){
        let leftHeight=height[left]
        let rightHeight=height[right]
        //如果右边更大，中间至少可以形成以左边高度为高度的水槽，左边开始动，并计算水量
        if(leftHeight < height[right]){
            //如果找到一个比左边记录的最大高度更大的，则这个更大的左边高度可以和右边形成一个以新的左边高度为高度的水槽
            if(height[left]>leftMax){
                leftMax=leftHeight //更新
            }
            else{
                //累计现有水槽水量
                water+=leftMax-leftHeight
            }
            left++
        }
        //如果左边更大，中间至少可以形成以右边高度为高度的水槽，右边开始动，并计算水量
        else{
            if(rightHeight>rightMax){
                rightMax=rightHeight //更新
            }
            else{
                //累计现有水槽水量
                water+=rightMax -rightHeight

            }
            right--
        }
    }
    return water

};


let height = [4,2,3]
console.log(trap(height));
